# -*- coding: cp1252 -*-
'''
Created on 16/06/2012

@author: Raphoka
'''
import MySQLdb as mdb

class CriarTabelas(object):
    '''
    classdocs
    '''


    def __init__(self):
        '''
        Constructor
        '''
        self.__host = "localhost" 
        self.__schema = "test"
        self.__usuario = "root"
        self.__port = 3306
        self.__senha = "sql"
        comandoSQL = ["CREATE SCHEMA IF NOT EXISTS `CRISTINAS_HAIR`"]
        self.__executarComando__(comandoSQL)
        self.__schema = "CRISTINAS_HAIR"

         
        
    def criarTabelas(self):
        comandoSQL = ["CREATE SCHEMA IF NOT EXISTS `CRISTINAS_HAIR`"]
        self.__executarComando__(comandoSQL)
        BD = open("scriptSQL.sql", 'r')
        lista = BD.readlines()
        listaComandosSQL = []

        comando = ''
        for i in lista:
                
            try:
                num = i.index(';')
                comando = comando + i[:num + 1]
                
                listaComandosSQL.append(comando)
                comando = ''
                

            except ValueError:
                comando = comando + i
                
        self.__executarComando__(listaComandosSQL)

        
    def __executarComando__(self, comandosSQL):
        db = mdb.connect(host=self.__host, port=self.__port, user=self.__usuario, passwd=self.__senha, db=self.__schema)                
            
        cursor = db.cursor()
        try:
            for i in comandosSQL:
                cursor.execute(i)
            db.commit()
            
            cursor.close()
            return True
        except mdb.Error, e:
            db.rollback()
            cursor.close()
            print "Error %d: %s" % (e.args[0], e.args[1])
            return False
        
    def gerarInsert(self, nomeTabela, DicionarioValores):
        colunasTabela = '' 
        for i in DicionarioValores.keys():
            colunasTabela = colunasTabela + "'" + i + "', " 
        colunasTabela = colunasTabela[:-2]
        
#        valoresColunas = ''
#        for i in DicionarioValores.values():
#            valoresColunas = i + ", "
        valoresColunas = str(DicionarioValores.values())[1:-1]
        comandoSQL = "INSERT INTO %s (%s) VALUES (%s)" % (nomeTabela, colunasTabela, valoresColunas)
        
        return comandoSQL
    
    def gerarUpdate(self, nomeTabela, DicionarioValores, colunaId, valorId):
        
        listaColunasTabela = DicionarioValores.keys()
        listaValoresColunas = DicionarioValores.values()

        valores = ""
        for i in range (len(listaColunasTabela)):
            
            valores = valores + str(listaColunasTabela[i]) + " = '" + str(listaValoresColunas[i])+ "', "
        
        valores = valores[:-2]
        comandoSQL = "UPDATE %s SET %s WHERE %s = '%s'" % (nomeTabela, valores, colunaId, valorId)
        
        return comandoSQL
        


            
if __name__ == "__main__":
    conexao = CriarTabelas()
    conexao.criarTabelas()
        
